字段对象: Model类(表类)中的字段类所实例化出来的对象
获取字段对象的方法在《ORM-_meta的用法》章节中有提到
1.该章节中所用到的表
# models.py
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=15, verbose_name='书名')
price = models.IntegerField(verbose_name='价格')
publish = models.ForeignKey(to='Publish', verbose_name='出版社')
author = models.ManyToManyField(to='Author', verbose_name='作者')
def __str__(self):
return self.title
class Meta:
verbose_name = "书籍"
verbose_name_plural = verbose_name
class Publish(models.Model):
title = models.CharField(max_length=15)
def __str__(self):
return self.title
class Meta:
verbose_name = '出版社'
verbose_name_plural = verbose_name
class Author(models.Model):
name = models.CharField(max_length=15)
def __str__(self):
return self.name
class Meta:
verbose_name = '作者'
verbose_name_plural = verbose_name
2. rel.to -> 获取该字段对象下所关联的模型表(即: 表类)
- 语法: 字段对象.rel.to
- rel.to 只作用于 一对一、一对多、多对多字段
# 获取字段对象
field_obj = Book._meta.get_field('publish')
# 获取该字段对象下所关联的模型表
publish_class = field_obj.rel.to # <class 'app01.models.Publish'>
# 获取该模型表下的数据
publish_data = publish_class.objects.all() # <QuerySet [<Publish: 东莞出版社>, <Publish: 广州出版社>]>
# 等同于
publish_data = field_obj.rel.to.objects.all() # <QuerySet [<Publish: 东莞出版社>, <Publish: 广州出版社>]>